package singleton

// Singleton（单例模式）
//Singleton模式确保一个类只有一个实例，并提供全局唯一的访问点。在Go语言中，可以使用sync.Once和匿名函数来实现单例模式。

import (
	"fmt"
	"sync"
)

type singleton struct{}

var instance *singleton
var once sync.Once

func GetInstance() *singleton {
	once.Do(func() {
		instance = &singleton{}
		fmt.Println("get singleton")
	})
	return instance
}
